import {defineStore} from 'pinia'
import {ref} from 'vue'

/**
 * Token 状态管理模块
 * 提供响应式的 token 状态，以及设置和清除 token 的方法
 */
export const useTokenStore = defineStore('token', () => {

    //1.响应式变量
    const token = ref('')

    //2.函数,修改token的值
    const setToken = (newToken) => {
        token.value = newToken
    }

    //3.函数,移除token的值
    const removeToken = () => {
        token.value = ''
    }

    return {
        token,
        setToken,
        removeToken
    }
}, {
    persist: {
        key: 'token',
        storage: localStorage,
        paths: ['token'] ,// 明确指定持久化字段
        serializer: {
            serialize: (state) => state.token, // 直接存储字符串
            deserialize: (stored) => ({ token: stored })
          }
    }
});